package it.univaq.mwt.arssa.business;

import it.univaq.mwt.arssa.business.model.Permesso;
import it.univaq.mwt.arssa.business.model.TipoPermesso;

import java.util.List;

public interface PermessiService {
	
	/*
	 * Metodi per Tipo permessi
	 */
	List<TipoPermesso> cercaTipoPermessi();	
	TipoPermesso cercaTipoPermesso(int id);
	void inserisciTipoPermesso(TipoPermesso tipoPermesso);
	void modificaTipoPermesso(TipoPermesso tipoPermesso);
	void eliminaTipoPermesso(int id);
	
	/*
	 * Metodi per i permessi 
	 */
	List<Permesso> cercaPermessi();	
	List<Permesso> cercaPermessiDipendente(int idDipendente);	
	Permesso cercaPermesso(int id);	
	String controllaPermesso(int tipoPermesso,int dipendente,int oreRichieste);
	void inserisciPermesso(Permesso permesso);
	void modificaPermesso(Permesso permesso);	
	/*
	 * Elimina i permessi di un dipendente. 
	 * Restituisce:
	 *  - 0 se viene eliminato senza errori.
	 *  - 1 se si sta tentando di eliminare un permesso di un altro dipendente
	 *  - 2 se si sta tentando di eliminare un permesso precedente alla data attuale
	 */
	int eliminaPermesso(int id,int dipendente);

}
